package br.com.playonline.persistencia;

import java.util.List;

import org.hibernate.SessionFactory;
import org.hibernate.criterion.Expression;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import br.com.playonline.domain.Usuario;

@Component
public class UsuarioHibernateDAO extends HibernateDAOGenerico<Usuario, Long> {

	@Autowired
	public UsuarioHibernateDAO(SessionFactory sessionFactory) {
		super(sessionFactory);
	}

	public List<Usuario> findByEmailAndSenha(String email, String senha){
		return findByCriteria(Restrictions.and(Expression.eq("email", email),Expression.eq("senha", senha)));
	}
	
	public List<Usuario> findByEmail(String email){
		return findByCriteria(Expression.eq("email", email));
	}
	
	
	public Usuario findByPessoa(Long pessoaID){
		List<Usuario> usuarios = findByCriteria(Expression.eq("pessoa.id", pessoaID));
		Usuario usuario = new Usuario();
		if(usuarios != null && usuarios.size() == 1){
			usuario = usuarios.get(0);
		}
		return usuario;
	}
	
}
